 
/****************************************************************************
                Университет:    Санкт-Петербургский Политехнический Университет
                Кафедра:        Компьютерные системы и программные технологии
                Аспирант:       Быков Илья Иванович
                Программа:      Расчет коэффициентов распределения
                Модуль:         removeedgecommand.cpp
                Назначение:
****************************************************************************/

#include "mainwindow.h"
#include "removeedgecommand.h"
#include "document.h"
#include "node.h"
#include "edge.h"

/******************************************************************************
** RemoveShapeCommand
*/

RemoveEdgeCommand::RemoveEdgeCommand(Document *doc, QList<Edge*> edgeList, QUndoCommand *parent)
    : Command(RemoveEdgeCommandId, doc, parent)
    , m_edgeList(edgeList)
{
    MainWindow::instance()->statusBar()->showMessage("Объект удален", 5000);
    if(m_edgeList.size() == 1) {
        setText(QString("Удалена стрелка (№ %1 --> № %2)").arg(m_edgeList[0]->sourceNode()->number()).arg(m_edgeList[0]->destNode()->number()));
    } 
    else {
        setText(QString("Удалена группа стрелок"));
    }
    
}

void RemoveEdgeCommand::undo()
{
    foreach (Edge *edge, m_edgeList) {
        document()->addEdge(edge);
    }
    document()->updateEdges();
}

void RemoveEdgeCommand::redo()
{
    foreach (Edge *edge, m_edgeList) {
        document()->removeEdge(edge);
    }
    document()->updateEdges();
}

